
Version 1.0
Email: waltgt1@yahoo.com


Monster Data
============
Monster data begins at 0x1B2B0, and there is a pointer table to this data at 0x1ACB0.  I've only figured out a portion of the data so far, but it looks like the size of each monster struct is variable (hence the importance of the pointer table).  As far as I can tell, the monster structs are up to 0x1B bytes long, in some cases only 0x10 bytes (not sure if these bits are monsters are other data), but usually they are 0x19 bytes long.  I've attached an excel file with some monster data, which should accompany this file.

typedef struct __MonsterStruct
	{
	char		cUnknown_1;		//Always seems to be zero
	char		cUnknown_2;		//Almost always 0xFF
	char		carrUnknown_3[0x6];	//[0x4] has something to do with teleportation (makes the monster flicker, depending on the value) and [0x5] also appears to have
 						//something to do with teleportation- if set to zero, gives invulnerability, but you can walk through the monster
	unsigned char	ucHP;			//For a monster to die, it's HP must be *below* zero- effectively, it's hp is + 1 from here.
	unsigned char	ucTouchDamage;		//Damage when the monster touches the player.  Seems to also be for projectiles??
	char		cUnknown_4;		//Always seems to be 0xFF
	unsigned char	ucDefense;		//Seems to be both armor and shield (instead of 2 different values like the player has)
	unsigned char	ucLevelToHurt;		//What level the player has to be to damage the monster.. seems to include other stuff also (bitflags)... maybe elemental immunity?
	char		carrUnknown_5[0x8];	//Setting[0x3] to 0xE0 appears to center the screen on the monster (like a boss battle), but the monster might not always spawn??
						//Setting [0x4] to 0xC8 makes the monster give the boss explosion, moves/fixes the screen, and stops the music
						//[0x7] has something to do with sprite and movement behavior
	unsigned char	cUnknown6_Exp;		//Something related to experience, but strange because this is only one byte and some monsters give more than 255 experience
	char		cUnknownSpriteData;	//Something to do with the sprite.. unclear if it's just this one byte, or if the following byte(s) are together with it
	char		cUnknown6_Optional;	//Not always part of the struct (green jelly, for example)
	char		cUnknown7_Optional;	//Not always part of the struct - most don't have this
	char		cUnknown8_Optional;	//Not always part of the struct - most don't have this
	char		cUnknown9_Optional;	//Not always part of the struct - most don't have this	
	}__MonsterStruct;